Welcome to python!

6.06 菜品排序和权限验证

currentUser={} #当前用户,全局变量

#-----------------------功能函数

#增加一个装饰函数来验证管理员

def checkAdmin(fun):

def warpper():

if currentUser["类型"]=="管理员":

fun()

else:

print("没有权限")

return warpper


#4、菜品上下架(仅限管理员)

@checkAdmin

def add():


@checkAdmin

def delete():


#5、设置菜品库存的价格(仅限管理员)

@checkAdmin


测试失败返回值1:

请输入用户名:bbb

请输入密码:123

---------------功能列表------------------

1、显示菜单列表

2、根据名称查询菜品信息

3、菜品上架

4、菜品下架

5、设置菜品库存的价格

6、库存预警

7、按照价格排序显示

8、退出

******************请输入功能编号(1~8):3

没有权限

---------------功能列表------------------

1、显示菜单列表

2、根据名称查询菜品信息

3、菜品上架

4、菜品下架

5、设置菜品库存的价格

6、库存预警

7、按照价格排序显示

8、退出

以管理员身份验证权限返回值2:

请输入用户名:ccc

请输入密码:123

---------------功能列表------------------

1、显示菜单列表

2、根据名称查询菜品信息

3、菜品上架

4、菜品下架

5、设置菜品库存的价格

6、库存预警

7、按照价格排序显示

8、退出

******************请输入功能编号(1~8):3

[1001, 1002, 1003, 1004, 1008]

1009

请输入菜品名称:猪肚鸡

请输入菜品单价:120

请输入菜品库存4

猪肚鸡 上架成功

----编号--------名称--------价格--------库存------

1001 -------- 牛肉 -------- 30 -------- 7 --------

1002 -------- 千张 -------- 10 -------- 122 --------

1003 -------- 土豆 -------- 12 -------- 103 --------

1004 -------- 汽水 -------- 6 -------- 34 --------

1008 -------- 啤酒 -------- 4 -------- 9 --------

1009 -------- 猪肚鸡 -------- 120.0 -------- 4 --------

---------------功能列表------------------

1、显示菜单列表

2、根据名称查询菜品信息

3、菜品上架

4、菜品下架

5、设置菜品库存的价格

6、库存预警

7、按照价格排序显示

8、退出


全系统代码:

#数据准备

user1={"用户名":"aaa","密码":"123","姓名":"张三","类型":"店员"}

user2={"用户名":"bbb","密码":"123","姓名":"李四","类型":"店员"}

user3={"用户名":"ccc","密码":"123","姓名":"王五","类型":"管理员"}

userList=[user1,user2,user3]


p1={"编号":"1001","名称":"牛肉","价格":30,"库存":7,"更新人":"ccc"}

p2={"编号":"1002","名称":"千张","价格":10,"库存":122,"更新人":"ccc"}

p3={"编号":"1003","名称":"土豆","价格":12,"库存":103,"更新人":"ccc"}

p4={"编号":"1004","名称":"汽水","价格":6,"库存":34,"更新人":"ccc"}

p5={"编号":"1008","名称":"啤酒","价格":4,"库存":9,"更新人":"ccc"}

productsList=[p1,p2,p3,p4,p5] #菜品列表


currentUser={} #当前用户,全局变量

#-----------------------功能函数

#增加一个装饰函数来验证管理员

def checkAdmin(fun):

def warpper():

if currentUser["类型"]=="管理员":

fun()

else:

print("没有权限")

return warpper


#1、用户登录

def login():

global currentUser #对全局变量进行重新赋值

result = "失效"

uName=input("请输入用户名:")

uPwd=input("请输入密码:")

for user in userList:

if user["用户名"]==uName and user["密码"]==uPwd:

currentUser = user

result="登录成功"

return result


#2、显示菜单列表

def listAll():

print("----编号--------名称--------价格--------库存------")

for product in productsList:

print(product["编号"], "--------",product["名称"],"--------" ,product["价格"],"--------",product["库存"],"--------")


#3、根据名称查询菜品信息

def getOneByName():

name=str(input("请输入菜品的名称:"))

exist=0

print("----编号--------名称--------价格--------库存------")

for product in productsList:

if name==product["名称"]:

exist=1

print(product["编号"], "--------",product["名称"],"--------" ,product["价格"],"--------",product["库存"],"--------")

if exist==0:

print("未查询到该菜品!")


#4、菜品上下架(仅限管理员)

@checkAdmin

def add():

listA=[]

for p in productsList:

listA.append(int(p["编号"]))

print(listA)

newnum=str(max(listA)+1)

print(newnum)

uname=currentUser["用户名"]

name=input("请输入菜品名称:")

price=float(input("请输入菜品单价:"))

stock=int(input("请输入菜品库存"))

newPro={"编号":newnum,"名称":name,"价格":price,"库存":stock,"更新人":uname}

productsList.append(newPro)

print(newPro["名称"],"上架成功")

listAll()

@checkAdmin

def delete():

exist=0

num=input("请输入下架的菜品编号")

for p in productsList:

if p["编号"]==num:

productsList.remove(p) #删除

exist=1

print(p["名称"],"下架成功")

if exist==0:

print("没有此菜品,下加失败")

listAll()


#5、设置菜品库存的价格(仅限管理员)

@checkAdmin

def update():

while True:

exist = 0

num=input("请输入要修改的菜品编号:")

for product in productsList:

if product["编号"]==num:

exist = 1

input1 = input("您需要更新的值是:1、价格,2、库存:")

input2 = input("更新后的值为:")

if input1=="1":

product["价格"]=float(input2)

elif input1=="2":

product["库存"]=int(input2)

print("----菜品",product["名称"],"已更新成功")

listAll()

break

if exist==0:

print("此菜品不存在!")

choice=input("请输入1 取消 2 继续输入")

if choice=="1":

break

else:

continue

else:

break


#6、库存预警(低于10时)

def warning():

exist = 0

print("以下菜品需要补充食材:")

print("----编号--------名称--------价格--------库存------")

for product in productsList:

if product["库存"]<10:

exist = 1

print(product["编号"], "--------", product["名称"], "--------", product["价格"], "--------",

product["库存"], "--------")

if exist == 0:

print("库存充足!")


#7、按照价格排序显示

def sortByPrice():

choice=input("请选择升序或降序(1 升序 2 降序)")

plist=[]

for product in productsList:

plist.append(product["价格"])

plist=list(set(plist)) #将plist用set函数去重,然后再转成列表,最后将值返回给plist

if choice=="1":

plist.sort()

else:

plist.sort(reverse=True)

print("----编号--------名称--------价格--------库存------")

for price in plist:

for product in productsList:

if price==product["价格"]:

print(product["编号"], "--------", product["名称"], "--------", product["价格"], "--------",

product["库存"], "--------")

#————————————————————————————显示主菜单,并调用相关功能


print("***************************** 菜品管理系统1.0 ************************************************")

while True:

result=login()

if result=="失败":

print("登录失败!请重新登录!")

continue


#业务功能

while True:

print("---------------功能列表------------------")

print("1、显示菜单列表")

print("2、根据名称查询菜品信息")

print("3、菜品上架")

print("4、菜品下架")

print("5、设置菜品库存的价格")

print("6、库存预警")

print("7、按照价格排序显示")

print("8、退出")

choice=input("******************请输入功能编号(1~8):")

if choice=="1":

listAll()

elif choice=="2":

getOneByName()

elif choice=="3":

add()

elif choice=="4":

delete()

elif choice=="5":

update()

elif choice=="6":

warning()

elif choice=="7":

sortByPrice()

elif choice=="8":

break

else:

print("设有此功能,请重新选择")

continue